// 发布新帖页面功能
$(document).ready(function() {
    // 检查登录状态，如果未登录则重定向到登录页
    const token = localStorage.getItem('jwt_token');
    if (!token) {
        window.location.href = 'login.html';
        return;
    }

    let quill = null;

    // 初始化Quill富文本编辑器
    function initQuill() {
        if (typeof Quill !== 'undefined') {
            // 初始化Quill编辑器
            quill = new Quill('#quill-editor-container', {
                modules: {
                    toolbar: [
                        [{ 'header': [1, 2, 3, 4, 5, 6, false] }],
                        ['bold', 'italic', 'underline', 'strike'],
                        [{ 'list': 'ordered'}, { 'list': 'bullet' }],
                        [{ 'indent': '-1'}, { 'indent': '+1' }],
                        [{ 'align': [] }],
                        ['link', 'image'],
                        ['clean']
                    ]
                },
                placeholder: '请输入帖子内容...',
                theme: 'snow'
            });
            
            // 监听内容变化，同步到隐藏的textarea
            quill.on('text-change', function() {
                const content = quill.root.innerHTML;
                document.getElementById('post-content').value = content;
            });
        } else {
            console.error('Quill未加载成功');
        }
    }

    // 检查用户权限
    function checkUserPermissions() {
        const userInfo = localStorage.getItem('user_info');
        if (userInfo) {
            try {
                const user = JSON.parse(userInfo);
                if (user.role === 'banned') {
                    // 禁用所有表单元素
                    $('#post-title').prop('disabled', true);
                    $('#post-category').prop('disabled', true);
                    $('button[type="submit"]').prop('disabled', true);
                    
                    // 禁用富文本编辑器
                    if (quill) {
                        quill.enable(false);
                    }
                    
                    // 显示提示信息
                    $('#error-message').text('您已被禁言，无法发布帖子').show();
                }
            } catch (e) {
                console.error('解析用户信息失败');
            }
        }
    }

    // 发布帖子表单提交
    $('#create-post-form').on('submit', function(e) {
        e.preventDefault();
        
        const title = $('#post-title').val().trim();
        const category = $('#post-category').val();
        
        // 获取富文本内容
        let content = '';
        if (quill) {
            content = quill.root.innerHTML;
        } else {
            content = $('#post-content').val().trim();
        }
        
        // 前端验证
        if (!title) {
            showError('请输入帖子标题');
            return;
        }
        
        if (title.length > 100) {
            showError('标题长度不能超过100字');
            return;
        }
        
        if (!category) {
            showError('请选择帖子分类');
            return;
        }
        
        if (!content || content === '<p><br></p>') {
            showError('请输入帖子内容');
            return;
        }
        
        // 清理HTML内容，防止XSS攻击
        const cleanContent = escapeHtml(content);
        
        // 发送发布请求
        request({
            url: '/posts',
            method: 'POST',
            data: {
                title: title,
                categoryId: category,
                content: cleanContent
            },
            success: function(response) {
                if ( response.code==200) {
                    alert('帖子发布成功！');
                    window.location.href = 'index.html';
                } else {
                    showError(response.message || '发布失败');
                }
            },
            error: function(jqXHR) {
                if (jqXHR.status === 400) {
                    showError('请求参数错误');
                } else if (jqXHR.status === 403) {
                    showError('您没有权限发布帖子');
                } else {
                    showError('发布失败，请稍后重试');
                }
            }
        });
    });

    // 加载分类列表
    function loadCategories() {
        request({
            url: '/categories',
            method: 'GET',
            success: function(response) {
                if (response.data) {
                    renderCategories(response.data);
                } else {
                    console.error('加载分类失败');
                }
            },
            error: function() {
                console.error('网络错误，加载分类失败');
            }
        });
    }

    // 渲染分类下拉框
    function renderCategories(categories) {
        const $categorySelect = $('#post-category');
        $categorySelect.empty();
        $categorySelect.append('<option value="">请选择分类</option>');
        
        categories.forEach(category => {
            $categorySelect.append(`<option value="${category.id}">${escapeHtml(category.name)}</option>`);
        });
    }

    // HTML转义函数
    function escapeHtml(text) {
        const map = {
            '&': '&',
            '<': '<',
            '>': '>',
            '"': '"',
            "'": '&#039;'
        };
        return text.replace(/[&<>"']/g, function(m) { return map[m]; });
    }

    // 初始化页面
    function initPage() {
        initQuill();
        checkUserPermissions();
        loadCategories();
    }

    // 启动页面初始化
    initPage();
});
